Docker安装oracle

基于docker的oracle安装

拉取镜像:

1
2
3
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 
```
下载完成后 查看镜像:

docker images

1
创建容器:

docker run -d -p 1521:1521 –name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

1
2
3
这里说一下,命令后面的地址一定要是你下载的镜像地址也就是你拉取镜像名字,否则会出现名字已存在等问题! 
如果空间不足可以清理数据:
删除所有dangling数据卷(即无用的Volume):

docker volume rm $(docker volume ls -qf dangling=true)

1
2
3
 
进入镜像进行配置
进入oracle的命令环境中。

docker exec -it oracle11g bash

1
2
切换到oracle数据库的root 
用户下

su root

1
密码:

helowin

1
编辑/etc/profile文件配置ORACLE环境变量

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=ORACLEHOME/bin:PATH

1
2
3
在最后加上  

让配置文件生效

source /etc/profile

1
2


在pycharm的terminal中输入ls,提示bash: ls: command not found,无法使用Linux命令
是因为环境变量PATH被修改了
只需在命令行执行
export PATH=/bin:/usr/bin:$PATH
即可

1
创建软连接

ln -sf $ORACLE_HOME/bin/sqlplus /usr/bin

1
2
3
4
这里还要说一下,一定要写中间的内条 - 必须要,否则软连接无效
-f 如果已经创建过不生效,重新创建需要覆盖,用-f参数

切换到oracle 用户

su oracle

1
2

登录sqlplus–修改sys、system用户密码–创建用户

sqlplus /nolog
conn /as sysdba

1
修改密码:

alter user system identified by system;
alter user sys identified by sys;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

1
创建用户

create user test2 identified by test2;

1
并给用户赋予权限

grant connect,resource,dba to test2;

1
过程中出现的报错需要输入以下内容:

输入:alter database mount;
输入:alter database open;

1
2
之后可进行退出用plsql进行链接,注意链接的实例为 helowinXDB
如果链接不上,可以再次进入容器中,修改listener.ora和tnsnames.ora文件,修改地址为docker 容器内部ip

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.2)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /home/oracle/app/oracle

1
2
3
 ## 附录

docker安装 安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1
2

安装yum-config-manager命令对应工具

sudo yum -y install yum-utils

1
添加软件源信息:

sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1
更新 yum 缓存:

sudo yum makecache fast

1
安装 Docker-ce:

sudo yum -y install docker-ce

1
启动 Docker 后台服务

sudo systemctl start docker

1
测试运行

hello-world docker run hello-world

1
2
由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。 
查看docker的镜像

docker images

1
2
在docker中安装与配置tomcat。
拉取镜像:

docker pull tomcat

1
2
3
使用tomcat镜像 
启动docker容器中的镜像:
例子:

docker run –name tomcat -p 5555:8080 -v /home/mengsheng/abc:/usr/local/tomcat/webapps/ -d tomcat

1
2
3
4
5
6
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。 -d跟镜像名 tomcat 
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 5555 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> /home/mengsheng/abc 把自己的项目资源放到这个目录下,就相当于放到了tomcat中的usr/local/tomcat/webapps/
–name:表示容器名称,用一个有意义的名称命名即可。

查看镜像软件的运行情况:

docker ps

1
停止/运行tomcat软件容器: 5421指代id的前四位

docker stop/start 5421

1
移除docker中的软件容器

#docker rm 5421

移除掉docker中下载的镜像:  


继开 wechat
欢迎加我的微信,共同交流技术